package com.atwy.graph.directedgraph;

/**
 * @Author: 小王子火
 * @Date: 2022/3/14
 * 有向图的API
 */
public interface IDigraph {
    /**
     * 顶点数
     * @return
     */
    int V();

    /**
     * 边数
     * @return
     */
    int E();

    /**
     * 向图中添加一条边 v->w
     * @param v
     * @param w
     */
    void addEdge(int v,int w);

    /**
     * 由 v 指出的边所连接的所有顶点
     * @param v
     * @return
     */
    int[] adj(int v);

    /**
     * 反向图，可以通过反向图找出"指向"每个顶点的所有边
     * @return
     */
    IDigraph reverse();
}
